var prefix = "/common/log"
$(function () {
    load();
});
let table = null;
let myUrl = prefix + "/list"
let myWhere = {}
const setMyWhere = () => {
    myWhere = {
        startTime: $("#createTime").val()==''?null:$("#createTime").val(),
        endTime: $("#endTime").val()==''?null:$("#endTime").val(),
        operationType: $("#operationType").val()==''?null:$("#operationType").val(),
        status: $("#status").val()==''?null:$("#status").val(),
        sysModule: $("#sysModule").val()==''?null:$("#sysModule").val(),
        username: $("#username").val()==''?null:$("#username").val(),
    }
}
setMyWhere()
let myCols = [[
    {
        field: 'checkbox',
        checkbox: true
    },
    {
        field: 'id', // 列字段名
        align: 'center',
        width: 160,
        title: '序号' // 列标题

    },
    {
        field: 'logNo',
        align: 'center',
        title: '日志编号'
    },
    {
        field: 'sysModule',
        align: 'center',
        title: '系统模块',
        templet:function (d){
            let str='-'
            switch (d.sysModule) {
                case '1':
                    str='用户管理';
                    break;
                case '2':
                    str='月嫂管理';
                    break;
                case '3':
                    str='需求管理';
                    break;
                case '5':
                    str='订单管理'
                    break;
                case '6':
                    str='商品管理';
                    break;
                case '7':
                    str='合同管理';
                    break;
                case '8':
                    str='评价管理'
                    break;
                case '9':
                    str='标签管理';
                    break;
                case '10':
                    str='服务项目管理'
                    break;
                case '11':
                    str='Banner管理';
                    break;
                case '12':
                    str='基础管理'
                    break;
                case '13':
                    str='常见问题管理'
                    break;
            }
            return str;
        }
    },
    {
        field: 'operationType',
        align: 'center',
        title: '操作类型',
        templet:function (d){
            let str='-'
            switch (d.operationType) {
                case '1':
                    str='新增';
                    break;
                case '2':
                    str='删除';
                    break;
                case '3':
                    str='编辑';
                    break;
                case '4':
                    str='导出'
                    break;
                case '5':
                    str='导入';
                    break;
            }
            return str;
        }
    },
    {
        field: 'username',
        align: 'center',
        width: 160,
        title: '操作人员'
    },
    {
        field: 'roleName',
        title: '操作角色',
        align: 'center',
    },
    {
        field: 'ip',
        align: 'center',
        title: '主机IP'
    },
    {
        field: 'operationAddress',
        align: 'center',
        title: '操作地址'
    },
    {
        field: 'gmtCreate',
        align: 'center',
        width: 160,
        title: '操作时间'
    },
    {
        title: '状态',
        field: 'status',
        align: 'center',
        templet:function (d) {
            let str='-'
            switch (d.status) {
                case '0':
                    str=`<div class="mydiv" style="background-color: #16baaa;"> 成功 </div>`;
                    break;
                case '1':
                    str=`<div class="mydiv" style="background-color: #f16d6d;"> 失败 </div>`;
                    break;
            }
            return str;
        }
    }]]

let pages = 1;
let daochu = () => {
    var rows = table.checkStatus('exampleTable').data
    layer.confirm(rows.length>0?'确认导出选中的'+rows.length+'条数据吗？':"确认要导出表格数据吗？", {
        btn : [ '确定', '取消' ]
        // 按钮
    }, function(index, layero) {
        console.log('导出')
        //参数
        setMyWhere()
        let str='?'
        Object.keys(myWhere).forEach(key=>{
            if(myWhere[key]!=null){
                str+=`${key}=${myWhere[key]}&`
            }
        })
        var ids = new Array();
        if(rows.length>0){
            $.each(rows, function(i, row) {
                ids[i] = row['id'];
            });
        }
        str+=`ids=${ids}`
        // window.location.href = `/common/log/download${str}`
        myDownFiles( `/common/log/download${str}` )
        layer.close(index);
    }, function() {
    })
}
/**
 * 删除
 */
let tableRemove = () => {
    var rows = table.checkStatus('exampleTable').data
    if (rows.length == 0) {
        layer.msg('请先选择数据')
        return false
    }

    layer.confirm("确认要删除选中的'" + rows.length + "'条数据吗?", {
        btn : [ '确定', '取消' ]
        // 按钮
    }, function(index, layero) {
        var ids = new Array();
        // 遍历所有选择的行数据，取每条数据对应的ID
        $.each(rows, function(i, row) {
            ids[i] = row['id'];
        });
        $.ajax({
            type : 'POST',
            data : {
                "ids" : ids
            },
            url : '/common/log/batchRemove',
            success : function(r) { 
                layer.close(index);
                if (r.code == 0) {
                    layer.msg(r.msg);
                    load();
                } else {
                    layer.msg(r.msg);
                }
            }
        });
    }, function() {
    });


}

function load() {
    layui.use(['table', 'laydate', 'form'], function () {
        table = layui.table
        var laydate = layui.laydate, $ = layui.$, form = layui.form;
        ;
        laydate.render({
            elem: '#ID-laydate-range',
            range: ['#createTime', '#endTime'],
            rangeLinked: true,
            type: 'datetime',
            shortcuts: [
                {
                    text: "上个月",
                    value: function () {
                        var date = new Date();
                        var year = date.getFullYear();
                        var month = date.getMonth();
                        return [
                            new Date(year, month - 1, 1),
                            new Date(year, month, 0)
                        ];
                    }
                }, {
                    text: "这个月",
                    value: function () {
                        var date = new Date();
                        var year = date.getFullYear();
                        var month = date.getMonth();
                        return [
                            new Date(year, month, 1),
                            new Date(year, month + 1, 0)
                        ];
                    }
                },
                {
                    text: "下个月",
                    value: function () {
                        var date = new Date();
                        var year = date.getFullYear();
                        var month = date.getMonth();
                        return [
                            new Date(year, month + 1, 1),
                            new Date(year, month + 2, 0)
                        ];
                    }
                }
            ],
            done: function (value, date, endDate) {
                let mydataList = value.split(' - ')
                $('#createTime').val(mydataList[0])
                $('#endTime').val(mydataList[1])
                setMyWhere()
            }
        });
        // 创建渲染实例
        table.render({
            elem: '#exampleTable'
            , id: 'exampleTable'
            , method:'post'
            ,contentType: 'application/json'
            , url: myUrl// 此处为静态模拟数据，实际使用时需换成真实接口
            , cellMinWidth: 80
            , page: { //支持传入 laypage 组件的所有参数（某些参数除外，如：jump/elem） - 详见文档
                layout: ['limit', 'count', 'prev', 'page', 'next', 'skip'] //自定义分页布局
                , curr: pages //设定初始在第 5 页
                , groups: 5 //只显示 1 个连续页码
                , limit: 15
                , limits : [15,30,50,100,200]
            }
            , request: {
                pageName: 'current' //页码的参数名称，默认：page
                , limitName: 'size'
            }
            , where: myWhere
            , defaultToolbar: false
            , loading: false
            , cols: myCols
            , response: {
                statusCode: 0 //重新规定成功的状态码为 200，table 组件默认为 0
            }
            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
                console.log(res, '45656465')
                if (res.code != 0) {

                    return false;
                }
                return {
                    "code": res.code, //解析接口状态
                    "msg": res.msg, //解析提示文本
                    "count": res.data.total, //解析数据长度
                    "data": res.data.records //解析数据列表
                };
            }
            , jump: function (obj, first) {
                //首次不执行
                if (!first) {
                    pages = obj.curr
                }
            }
            , error: function (res, msg) {
                console.log(res, msg)
            }
            , done: function (res) {
                layer.close()
                hindLoading()
            }
        });

        var $ = layui.$, active = {
            reload: function () {
                //执行重载
                setMyWhere()
                table.reload('exampleTable', {
                    page: {
                        curr: 1 //重新从第 1 页开始
                    }
                    , where: myWhere
                });
            }
        };

        /**
         * 搜索事件
         */
        $('.demoTable .layui-btn').on('click', function () {
            var type = $(this).data('type');
            active[type] ? active[type].call(this) : '';
        });
    });

}

